package com.eshop.modules.system.service.dto;

import java.util.Set;
import java.sql.Timestamp;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;

public class UserDto implements Serializable
{
    @ApiModelProperty(hidden = true)
    private Long id;
    private String username;
    private String nickName;
    private String sex;
    private String avatar;
    private String email;
    private String phone;
    private Boolean enabled;
    @JsonIgnore
    private String password;
    private Timestamp lastPasswordResetTime;
    @ApiModelProperty(hidden = true)
    private Set<RoleSmallDto> roles;
    @ApiModelProperty(hidden = true)
    private JobSmallDto job;
    private DeptSmallDto dept;
    private Long deptId;
    private Timestamp createTime;
    
    public Long getId() {
        return this.id;
    }
    
    public String getUsername() {
        return this.username;
    }
    
    public String getNickName() {
        return this.nickName;
    }
    
    public String getSex() {
        return this.sex;
    }
    
    public String getAvatar() {
        return this.avatar;
    }
    
    public String getEmail() {
        return this.email;
    }
    
    public String getPhone() {
        return this.phone;
    }
    
    public Boolean getEnabled() {
        return this.enabled;
    }
    
    public String getPassword() {
        return this.password;
    }
    
    public Timestamp getLastPasswordResetTime() {
        return this.lastPasswordResetTime;
    }
    
    public Set<RoleSmallDto> getRoles() {
        return this.roles;
    }
    
    public JobSmallDto getJob() {
        return this.job;
    }
    
    public DeptSmallDto getDept() {
        return this.dept;
    }
    
    public Long getDeptId() {
        return this.deptId;
    }
    
    public Timestamp getCreateTime() {
        return this.createTime;
    }
    
    public void setId(final Long id) {
        this.id = id;
    }
    
    public void setUsername(final String username) {
        this.username = username;
    }
    
    public void setNickName(final String nickName) {
        this.nickName = nickName;
    }
    
    public void setSex(final String sex) {
        this.sex = sex;
    }
    
    public void setAvatar(final String avatar) {
        this.avatar = avatar;
    }
    
    public void setEmail(final String email) {
        this.email = email;
    }
    
    public void setPhone(final String phone) {
        this.phone = phone;
    }
    
    public void setEnabled(final Boolean enabled) {
        this.enabled = enabled;
    }
    
    @JsonIgnore
    public void setPassword(final String password) {
        this.password = password;
    }
    
    public void setLastPasswordResetTime(final Timestamp lastPasswordResetTime) {
        this.lastPasswordResetTime = lastPasswordResetTime;
    }
    
    public void setRoles(final Set<RoleSmallDto> roles) {
        this.roles = roles;
    }
    
    public void setJob(final JobSmallDto job) {
        this.job = job;
    }
    
    public void setDept(final DeptSmallDto dept) {
        this.dept = dept;
    }
    
    public void setDeptId(final Long deptId) {
        this.deptId = deptId;
    }
    
    public void setCreateTime(final Timestamp createTime) {
        this.createTime = createTime;
    }
    
    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof UserDto)) {
            return false;
        }
        final UserDto other = (UserDto)o;
        if (!other.canEqual(this)) {
            return false;
        }
        final Object this$id = this.getId();
        final Object other$id = other.getId();
        Label_0065: {
            if (this$id == null) {
                if (other$id == null) {
                    break Label_0065;
                }
            }
            else if (this$id.equals(other$id)) {
                break Label_0065;
            }
            return false;
        }
        final Object this$enabled = this.getEnabled();
        final Object other$enabled = other.getEnabled();
        Label_0102: {
            if (this$enabled == null) {
                if (other$enabled == null) {
                    break Label_0102;
                }
            }
            else if (this$enabled.equals(other$enabled)) {
                break Label_0102;
            }
            return false;
        }
        final Object this$deptId = this.getDeptId();
        final Object other$deptId = other.getDeptId();
        Label_0139: {
            if (this$deptId == null) {
                if (other$deptId == null) {
                    break Label_0139;
                }
            }
            else if (this$deptId.equals(other$deptId)) {
                break Label_0139;
            }
            return false;
        }
        final Object this$username = this.getUsername();
        final Object other$username = other.getUsername();
        Label_0176: {
            if (this$username == null) {
                if (other$username == null) {
                    break Label_0176;
                }
            }
            else if (this$username.equals(other$username)) {
                break Label_0176;
            }
            return false;
        }
        final Object this$nickName = this.getNickName();
        final Object other$nickName = other.getNickName();
        Label_0213: {
            if (this$nickName == null) {
                if (other$nickName == null) {
                    break Label_0213;
                }
            }
            else if (this$nickName.equals(other$nickName)) {
                break Label_0213;
            }
            return false;
        }
        final Object this$sex = this.getSex();
        final Object other$sex = other.getSex();
        Label_0250: {
            if (this$sex == null) {
                if (other$sex == null) {
                    break Label_0250;
                }
            }
            else if (this$sex.equals(other$sex)) {
                break Label_0250;
            }
            return false;
        }
        final Object this$avatar = this.getAvatar();
        final Object other$avatar = other.getAvatar();
        Label_0287: {
            if (this$avatar == null) {
                if (other$avatar == null) {
                    break Label_0287;
                }
            }
            else if (this$avatar.equals(other$avatar)) {
                break Label_0287;
            }
            return false;
        }
        final Object this$email = this.getEmail();
        final Object other$email = other.getEmail();
        Label_0324: {
            if (this$email == null) {
                if (other$email == null) {
                    break Label_0324;
                }
            }
            else if (this$email.equals(other$email)) {
                break Label_0324;
            }
            return false;
        }
        final Object this$phone = this.getPhone();
        final Object other$phone = other.getPhone();
        Label_0361: {
            if (this$phone == null) {
                if (other$phone == null) {
                    break Label_0361;
                }
            }
            else if (this$phone.equals(other$phone)) {
                break Label_0361;
            }
            return false;
        }
        final Object this$password = this.getPassword();
        final Object other$password = other.getPassword();
        Label_0398: {
            if (this$password == null) {
                if (other$password == null) {
                    break Label_0398;
                }
            }
            else if (this$password.equals(other$password)) {
                break Label_0398;
            }
            return false;
        }
        final Object this$lastPasswordResetTime = this.getLastPasswordResetTime();
        final Object other$lastPasswordResetTime = other.getLastPasswordResetTime();
        Label_0435: {
            if (this$lastPasswordResetTime == null) {
                if (other$lastPasswordResetTime == null) {
                    break Label_0435;
                }
            }
            else if (this$lastPasswordResetTime.equals(other$lastPasswordResetTime)) {
                break Label_0435;
            }
            return false;
        }
        final Object this$roles = this.getRoles();
        final Object other$roles = other.getRoles();
        Label_0472: {
            if (this$roles == null) {
                if (other$roles == null) {
                    break Label_0472;
                }
            }
            else if (this$roles.equals(other$roles)) {
                break Label_0472;
            }
            return false;
        }
        final Object this$job = this.getJob();
        final Object other$job = other.getJob();
        Label_0509: {
            if (this$job == null) {
                if (other$job == null) {
                    break Label_0509;
                }
            }
            else if (this$job.equals(other$job)) {
                break Label_0509;
            }
            return false;
        }
        final Object this$dept = this.getDept();
        final Object other$dept = other.getDept();
        Label_0546: {
            if (this$dept == null) {
                if (other$dept == null) {
                    break Label_0546;
                }
            }
            else if (this$dept.equals(other$dept)) {
                break Label_0546;
            }
            return false;
        }
        final Object this$createTime = this.getCreateTime();
        final Object other$createTime = other.getCreateTime();
        if (this$createTime == null) {
            if (other$createTime == null) {
                return true;
            }
        }
        else if (this$createTime.equals(other$createTime)) {
            return true;
        }
        return false;
    }
    
    protected boolean canEqual(final Object other) {
        return other instanceof UserDto;
    }
    
    @Override
    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $id = this.getId();
        result = result * 59 + (($id == null) ? 43 : $id.hashCode());
        final Object $enabled = this.getEnabled();
        result = result * 59 + (($enabled == null) ? 43 : $enabled.hashCode());
        final Object $deptId = this.getDeptId();
        result = result * 59 + (($deptId == null) ? 43 : $deptId.hashCode());
        final Object $username = this.getUsername();
        result = result * 59 + (($username == null) ? 43 : $username.hashCode());
        final Object $nickName = this.getNickName();
        result = result * 59 + (($nickName == null) ? 43 : $nickName.hashCode());
        final Object $sex = this.getSex();
        result = result * 59 + (($sex == null) ? 43 : $sex.hashCode());
        final Object $avatar = this.getAvatar();
        result = result * 59 + (($avatar == null) ? 43 : $avatar.hashCode());
        final Object $email = this.getEmail();
        result = result * 59 + (($email == null) ? 43 : $email.hashCode());
        final Object $phone = this.getPhone();
        result = result * 59 + (($phone == null) ? 43 : $phone.hashCode());
        final Object $password = this.getPassword();
        result = result * 59 + (($password == null) ? 43 : $password.hashCode());
        final Object $lastPasswordResetTime = this.getLastPasswordResetTime();
        result = result * 59 + (($lastPasswordResetTime == null) ? 43 : $lastPasswordResetTime.hashCode());
        final Object $roles = this.getRoles();
        result = result * 59 + (($roles == null) ? 43 : $roles.hashCode());
        final Object $job = this.getJob();
        result = result * 59 + (($job == null) ? 43 : $job.hashCode());
        final Object $dept = this.getDept();
        result = result * 59 + (($dept == null) ? 43 : $dept.hashCode());
        final Object $createTime = this.getCreateTime();
        result = result * 59 + (($createTime == null) ? 43 : $createTime.hashCode());
        return result;
    }
    
    @Override
    public String toString() {
        return "UserDto(id=" + this.getId() + ", username=" + this.getUsername() + ", nickName=" + this.getNickName() + ", sex=" + this.getSex() + ", avatar=" + this.getAvatar() + ", email=" + this.getEmail() + ", phone=" + this.getPhone() + ", enabled=" + this.getEnabled() + ", password=" + this.getPassword() + ", lastPasswordResetTime=" + this.getLastPasswordResetTime() + ", roles=" + this.getRoles() + ", job=" + this.getJob() + ", dept=" + this.getDept() + ", deptId=" + this.getDeptId() + ", createTime=" + this.getCreateTime() + ")";
    }
}
